package io.adrainty.gbatis.transation;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * 事物管理器接口
 * @author adrainty
 * @version v1.0.0
 * @since 2024/1/14 22:37
 */
public interface Transaction {

    /**
     * 获取连接
     * @return 获取数据库连接
     */
    Connection getConnection();

    /**
     * 提交事物
     */
    void commit() throws SQLException;

    /**
     * 回滚事物
     */
    void rollback() throws SQLException;

    /**
     * 关闭事物
     */
    void close() throws SQLException;

    /**
     * 开启数据库连接
     */
    void openConnection() throws SQLException;
}
